#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//int main()
//{
//	int m, n;
//	int arr1[2000] = { 0 };
//	int arr2[2000] = { 0 };
//	scanf("%d%d", &m, &n);
//	int k = 0;
//	int temp = 0;
//	for (int i = 0; i < m; i++)
//		scanf("%d", &arr1[i]);
//	for (int i = 0; i < n; i++)
//		scanf("%d", &arr2[i]);
//	for (int i = m; i < m + n; i++)
//	{
//		arr1[i] = arr2[k];
//		k++;
//	}
//	for(int i = 0;i<m+n-1;i++)
//	{
//		for (int j = 0; j < m + n - 1 - i; j++)
//		{
//			if (arr1[j] > arr1[j + 1])
//			{
//				temp = arr1[j];
//				arr1[j] = arr1[j + 1];
//				arr1[j + 1] = temp;
//			}
//		}
//	}
//	for (int i = 0; i < m + n; i++)
//	{
//		printf("%d ", arr1[i]);
//	}
//
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	double arr[5][5];
//	double sum[5] = { 0 };
//	for (int i = 0; i < 5; i++)
//	{
//		for (int j = 0; j < 5; j++)
//		{
//			scanf("%lf", &arr[i][j]);
//			sum[i] += arr[i][j];
//		}
//	}
//	for (int i = 0; i < 5; i++)
//	{
//		int temp = 0;
//		for (int j = 0; j < 5; j++)
//		{
//			printf("%.1lf ", arr[i][j]);
//			temp++;
//		}
//		if (temp == 5)
//			printf("%.1lf\n",sum[i]);
//	}
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int m, n;
//	int arr[5][5] = { 0 };
//	scanf("%d%d", &m, &n);
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			scanf("%d", &arr[i][j]);
//		}
//	}
//	scanf("%d%d", &m, &n);
//	printf("%d", arr[m - 1][n - 1]);
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int m, n;
//	int arr[10][10] = {0};
//	scanf("%d%d", &m, &n);
//	for (int i = 0; i < m ; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			scanf("%d", &arr[i][j]);
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int m, n;
//	int a, b;
//	int arr[10][10] = { 0 };
//	scanf("%d%d", &m, &n);
//	int max = 0;
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			scanf("%d", &arr[i][j]);
//			if (arr[i][j] > max)
//			{
//				max = arr[i][j];
//				a = i + 1;
//				b = j + 1;
//			}
//		}
//	}
//	printf("%d %d", a, b);
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int m, n;
//	int temp = 1;
//	int arr1[10][10] = { 0 };
//	int arr2[10][10] = { 0 };
//	scanf("%d%d", &m, &n);
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			scanf("%d", &arr1[i][j]);
//		}
//	}
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			scanf("%d", &arr2[i][j]);
//		}
//	}
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			if (arr1[i][j] != arr2[i][j])
//			{
//				temp = 0;
//				break;
//			}
//		}
//	}
//	if (temp)
//		printf("YES\n");
//	else
//		printf("NO\n");
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int m;
//	int temp = 1;
//	int arr[10][10] = { 0 };
//	scanf("%d", &m);
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < m; j++)
//		{
//			scanf("%d", &arr[i][j]);
//		}
//	}
//	for (int i = 1; i < m; i++)
//	{
//		for (int j = 0; j < i; j++)
//		{
//			if (arr[i][j] != 0)
//			{
//				temp = 0;
//				break;
//			}
//		}
//	}
//	if (temp)
//	{
//		printf("YES\n");
//	}
//	else
//	{
//		printf("NO\n");
//	}
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int m, n;
//	scanf("%d%d", &m, &n);
//	int arr[10][10] = { 0 };
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			scanf("%d", &arr[i][j]);
//		}
//	}
//	for (int i = 0; i < n; i++)
//	{
//		for (int j = 0; j < m; j++)
//		{
//			printf("%d ", arr[j][i]);
//		}
//		printf("\n");
//	}
//
//	return 0;
//}


//#include<stdio.h>
//int main()
//{
//	int m, n;
//	int k = 0;
//	int a, b;
//	char ch;
//	scanf("%d%d", &m, &n);
//	int arr[10][10] = { 0 };
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			scanf("%d", &arr[i][j]);
//		}
//	}
//	scanf("%d", &k);
//	int temp = 0;
//	while (k)
//	{
//		getchar();
//		scanf("%c%d%d", &ch, &a, &b);
//		if (ch == 'r')
//		{
//			for (int i = 0; i < n; i++)
//			{
//				temp = arr[a - 1][i];
//				arr[a - 1][i] = arr[b - 1][i];
//				arr[b - 1][i] = temp;
//			}
//		}
//		else if (ch == 'c')
//		{
//			for (int i = 0; i < m; i++)
//			{
//				temp = arr[i][a - 1];
//				arr[i][a - 1] = arr[i][b - 1];
//				arr[i][b - 1] = temp;
//			}
//		}
//		k--;
//	}
//	for (int i = 0; i < m; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}


#include<stdio.h>
int main()
{
	int n;
	int arr[30][30] = { 0 };
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			if (i == j || 0 == j)
				arr[i][j] = 1;
			else
				arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
		}
	}
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			printf("%5d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}


//#include <stdio.h>
//
//int main()
//{
//    int n = 0;
//    int arr[30][30] = { 0 };
//    scanf("%d", &n);
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j <= i; j++)
//        {
//            if (0 == j || i == j)
//            {
//                arr[i][j] = 1;
//            }
//            else
//            {
//                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
//            }
//            printf("%5d", arr[i][j]);
//        }
//        printf("\n");
//    }
//
//    return 0;
//}